SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[parLicenciaPlazasFrenteAlumnos]

@AñoAnalizar INT 
AS
SET NOCOUNT ON
SET DATEFORMAT DMY
-- Licencias de los Titulares, Interinos o Funcionales en el AñoAnalizar para las plazas Frente a Alumnos en EGB

	SELECT A.Documento, A.Apellido, A.Nombres, PP.CUPOF, OO.CUISE, OO.Nombre, L.localidad, SS.Plaza, S.SituacionRevista, S.Agente,  SS.IdSubservicio, SR.Mnemo,
			CASE WHEN (year(SS.FechaAlta) < @AñoAnalizar) then convert(DATETIME,'01/01/'+CONVERT(VARCHAR(4),@AñoAnalizar)) ELSE SS.FechaAlta END FAlta,
			CASE WHEN (year(SS.FechaBaja) > @AñoAnalizar) OR (SS.FechaBaja IS NULL)  then convert(DATETIME,'31/12/'+CONVERT(VARCHAR(4),@AñoAnalizar)) ELSE SS.FechaBaja END FBAja
				FROM tb_ServiciosAgentes S
				INNER JOIN tb_SubserviciosAgentes SS ON S.IdServicioAgente = SS.ServicioAgente 
				INNER JOIN tb_Plazas PP ON PP.idPlaza = SS.Plaza
				INNER JOIN tb_Organizaciones OO ON OO.idOrganizaciones = PP.Organizacion
				INNER JOIN tb_Localidades L ON L.idLocalidad= OO.Localidad
				INNER JOIN tb_Agentes A ON A.idAgente = S.Agente
				INNER JOIN tb_SituacionRevista SR ON SR.idSituacionRevista = S.SituacionRevista
				WHERE  SS.Plaza IN (SELECT IdPlaza FROM tb_Plazas P 
									INNER JOIN tb_Organizaciones O ON O.idOrganizaciones = P.Organizacion
									WHERE (P.FechaBaja IS NULL OR YEAR(P.FechaBaja) >= @AñoAnalizar)
		 	 							  AND P.Funcion IN (SELECT IdFuncion FROM tb_Funciones WHERE TipoDeFuncion IN (12, 13, 15))
		 	 							  AND O.cuise BETWEEN 300 AND 1035
		 	 															 
		 	 				)
				
					AND S.SituacionRevista IN (1,2,3,4) 
				   	AND SS.licencia IS NOT NULL
					AND (YEAR(SS.FechaAlta) = @AñoAnalizar OR  (YEAR(SS.FechaAlta) <= @AñoAnalizar AND YEAR(isnull(SS.FechaBaja, '31/12/'+CONVERT(VARCHAR(4), @AñoAnalizar))) = @AñoAnalizar))				
				ORDER BY SS.Plaza, S.Agente
GO
